package com.engine.salary.entity.taxdeclaration.po;

import com.engine.salary.annotation.Auth;
import com.engine.salary.common.LocalDateRange;
import com.engine.salary.enums.auth.AuthCheckTypeEnum;
import com.engine.salary.enums.salarysob.IncomeCategoryEnum;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Collection;
import java.util.Date;
import java.util.Set;

/**
 * 个税申报记录
 * <p>Copyright: Copyright (c) 2022</p>
 * <p>Company: 泛微软件</p>
 *
 * @author qiantao
 * @version 1.0
 **/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
//hrsa_tax_declaration
@Auth(page = "taxDeclaration",checkType = AuthCheckTypeEnum.TAX)
public class TaxDeclarationPO {

    /**
     * 主键id
     */
    private Long id;

    /**
     * 薪资所属月
     */
    private Date salaryMonth;

    /**
     * 税款所属期
     */
    private Date taxCycle;

    /**
     * 个税扣缴义务人id
     */
    private Long taxAgentId;

    /**
     * 薪资类型
     *
     * @see IncomeCategoryEnum
     */
    private Integer incomeCategory;

    /**
     * 备注
     */
    private String description;

    /**
     * 租户key
     */
    private String tenantKey;

    /**
     * 创建人id
     */
    private Long creator;

    /**
     * 是否删除
     */
    private Integer deleteType;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 更新时间
     */
    private Date updateTime;

    //税款所属期
    LocalDateRange salaryMonths;


    //"开始日期
    private Date taxCycleFromDate;

    //结束日期
    private Date taxCycleEndDate;



    private Collection<Long> taxAgentIds;
    private Set<String> opts;
}
